﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using T.AuditField;

namespace T.Personnel.Domain
{
    /// <summary>
    /// 人员办理表
    /// </summary>
    [Table("Manage")]
    public class Manage:AuditFields
    {
        /// <summary>
        /// 人员办理id
        /// </summary>
        [Key]
        public int Id { get; set; }
        /// <summary>
        /// 全球唯一标识符
        /// </summary>
        [Required]
        [StringLength(100)]
        public string Guid { get; set; }
        /// <summary>
        /// 部门id
        /// </summary>
        [Required]
        public int DepartmentId { get; set; }
        /// <summary>
        /// 部门
        /// </summary>
        [Required]
        [StringLength(50)]
        public string Department { get; set; }
        /// <summary>
        /// 职位id
        /// </summary>
        [Required]
        public int PositionId { get; set; }
        /// <summary>
        /// 职位
        /// </summary>
        [Required]
        [StringLength(50)]
        public string Position { get; set; }
        /// <summary>
        /// 员工id
        /// </summary>
        [Required]
        public int StaffId { get; set; }
        /// <summary>
        /// 员工名称
        /// </summary>
        [Required]
        [StringLength(50)]
        public string StaffName { get; set; }
        /// <summary>
        /// 负责人id
        /// </summary>
        [Required]
        public int PrincipalId { get; set; }
        /// <summary>
        /// 上级负责人名称
        /// </summary>
        [Required]
        [StringLength(50)]
        public string Principal { get; set; }
        /// <summary>
        /// 入职日期
        /// </summary>
        [Required]
        public DateTime Hiredate { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        [StringLength(500)]
        public string? Remarks { get; set; }
        /// <summary>
        /// 审批状态
        /// </summary>
        [Required]
        [StringLength(10)]
        public string AppStatus { get; set; }
        /// <summary>
        /// 审批备注
        /// </summary>
        [StringLength(500)]
        public string? AppRemarks { get; set; }
        /// <summary>
        /// 审批人
        /// </summary>
        [Required]
        [StringLength(50)]
        public string? Approver { get; set; }
        /// <summary>
        /// 最后工作日
        /// </summary>
        public DateTime? LastDay { get; set; }
        /// <summary>
        /// 离职原因
        /// </summary>
        [StringLength(500)]
        public string? ResignationWey { get; set; }
        /// <summary>
        /// 申请日期
        /// </summary>
        public DateTime? ApplicationDate { get; set; }
        /// <summary>
        /// 试用期工作总结
        /// </summary>
        [StringLength(500)]
        public string? WorkSummary { get; set; }
        /// <summary>
        /// 对公司的意见和建议
        /// </summary>
        [StringLength(50)]
        public string? Opinion { get; set; }
        /// <summary>
        /// 办理类别
        /// </summary>
        [Required]
        public int ManageType { get; set; } = 0;
        /// <summary>
        /// 转批人
        /// </summary>
        public string? Subgrantor { get; set; }
    }
}
